	org		0x0000

	ori		$sp, $zero, 0x4000
	ori		$sp, $zero, 0x0C00
	ori		$6, $zero, 0xFFFF
	ori		$7, $zero, 0x0000
	ori		$8, $zero, 0xFF00
	ori		$9,	$zero, 0x0FF0
	ori		$10,$zero, 0x00FF
	ADDU	$11, $8, $10
	AND		$12, $9, $10
	ori		$13, $zero, haha
	JR		$13
	ADDIU	$14, $10, 1 # should get skipped

haha:

	NOR		$14, $7, $10
	OR		$15, $7, $10
	SLT		$16, $8, $6
	SLT		$17, $6, $8
	SLTU	$18, $8, $6
	SLTU	$19, $6, $8
	SLL		$20, $9, 1
	SRL		$21, $9, 1
	SUBU	$22, $8, $10
	XOR		$23, $9, $10
	ANDI	$24, $9, 0xFF00
	LUI		$25, 0xFCCF
	SLTI	$26, $8, 0xFFFF
	SLTI	$27, $6, 0xFF00
	SLTIU	$28, $8, 0xFFFF
	SLTIU	$30, $6, 0xFF00
	XORI	$2,	$9, 0x00FF

	sw	$11, 0($sp)
	sw	$12, 8($sp)
	sw	$13, 16($sp)
	sw	$14, 24($sp)
	sw	$15, 32($sp)
	sw	$16, 40($sp)
	sw	$17, 48($sp)
	sw	$18, 56($sp)
	sw	$19, 64($sp)
	sw	$20, 72($sp)
	sw	$21, 80($sp)
	sw	$22, 88($sp)
	sw	$23, 96($sp)
	sw	$24, 104($sp)
	sw	$25, 112($sp)
	sw	$26, 120($sp)
	
	sw	$27, 128($sp)
	sw	$28, 136($sp)
	sw	$30, 144($sp)
	sw	$2, 152($sp)
	sw	$11, 160($sp)
	sw	$12, 168($sp)
	sw	$13, 176($sp)
	sw	$14, 184($sp)
	sw	$15, 192($sp)
	sw	$16, 200($sp)
	sw	$17, 208($sp)
	sw	$18, 216($sp)
	sw	$19, 224($sp)
	sw	$20, 232($sp)
	sw	$22, 240($sp)
	sw	$23, 248($sp)
	
	ADDIU	$sp, $sp, 248
	ADDIU $sp, $sp, 8
	
	sw	$12, 0($sp)
	sw	$13, 8($sp)
	sw	$14, 16($sp)
	sw	$15, 24($sp)
	sw	$16, 32($sp)
	sw	$17, 40($sp)
	sw	$18, 48($sp)
	sw	$19, 56($sp)
	sw	$20, 64($sp)
	sw	$21, 72($sp)
	sw	$22, 80($sp)
	sw	$23, 88($sp)
	sw	$24, 96($sp)
	sw	$25, 104($sp)
	sw	$26, 112($sp)
	sw	$27, 120($sp)
	
	sw	$28, 128($sp)
	sw	$29, 136($sp)
	sw	$11, 144($sp)
	sw	$30, 152($sp)
	sw	$12, 160($sp)
	sw	$13, 168($sp)
	sw	$14, 176($sp)
	sw	$15, 184($sp)
	sw	$16, 192($sp)
	sw	$17, 200($sp)
	sw	$12, 208($sp)
	sw	$13, 216($sp)
	sw	$24, 224($sp)
	sw	$25, 232($sp)
	sw	$26, 240($sp)
	sw	$27, 248($sp)
	
	
	ADDIU	$sp, $sp, -128
	ADDIU $sp, $sp, -128
	
	lw	$12, 0($sp)
	lw	$13, 8($sp)
	lw	$14, 16($sp)
	lw	$15, 24($sp)
	lw	$16, 32($sp)
	lw	$17, 40($sp)
	lw	$18, 48($sp)
	lw	$19, 56($sp)
	lw	$20, 64($sp)
	lw	$21, 72($sp)
	lw	$22, 80($sp)
	lw	$23, 88($sp)
	lw	$24, 96($sp)
	lw	$25, 104($sp)
	lw	$26, 112($sp)
	lw	$27, 120($sp)
	
	lw	$28, 128($sp)
	lw	$29, 136($sp)
	lw	$11, 144($sp)
	lw	$30, 152($sp)
	lw	$12, 160($sp)
	lw	$13, 168($sp)
	lw	$14, 176($sp)
	lw	$15, 184($sp)
	lw	$16, 192($sp)
	lw	$17, 200($sp)
	lw	$12, 208($sp)
	lw	$13, 216($sp)
	lw	$24, 224($sp)
	lw	$25, 232($sp)
	lw	$26, 240($sp)
	lw	$27, 248($sp)
	
	ADDIU	$sp, $sp, 248
	ADDIU $sp, $sp, 8
	
	ADDIU	$sp, $sp, 248
	ADDIU $sp, $sp, 8
	
	sw	$12, 0($sp)
	sw	$13, 8($sp)
	sw	$14, 16($sp)
	sw	$15, 24($sp)
	sw	$16, 32($sp)
	sw	$17, 40($sp)
	sw	$18, 48($sp)
	sw	$19, 56($sp)
	sw	$20, 64($sp)
	sw	$21, 72($sp)
	sw	$22, 80($sp)
	sw	$23, 88($sp)
	sw	$24, 96($sp)
	sw	$25, 104($sp)
	sw	$26, 112($sp)
	sw	$27, 120($sp)
	
	sw	$28, 128($sp)
	sw	$29, 136($sp)
	sw	$11, 144($sp)
	sw	$30, 152($sp)
	sw	$12, 160($sp)
	sw	$13, 168($sp)
	sw	$14, 176($sp)
	sw	$15, 184($sp)
	sw	$16, 192($sp)
	sw	$17, 200($sp)
	sw	$12, 208($sp)
	sw	$13, 216($sp)
	sw	$24, 224($sp)
	sw	$25, 232($sp)
	sw	$26, 240($sp)
	sw	$27, 248($sp)
	
	halt
